In the past decade, computer systems have enjoyed a hundred-fold increase in processor speed, while the speed of disk drives has increased by less than a factor of 10. As a consequence of this disparity, computer systems that run applications that perform I/O-intensive processing, are designed to use many disks in parallel, usually organized as a disk farm or a RAID array. The physical organization generally consists of one or more I/O buses, (e.g., SCSI, FC, or SSA) with several disks on each bus.
Previous work related to disk I/O performance has focused on the disk drive, down playing the importance of bus contention and other bus effects. Indeed, the bus effects play an insignificant role in I/O performance for workloads with small I/O request sizes. But many I/O-intensive applications benefit significantly from larger requests (8-128 KB). Among these are multimedia servers and certain database and scientific computing applications that use external memory and out-of-core algorithmic techniques to process massive data sets. In such applications, parallel I/O performance is often limited by the bus.
Some prior art systems have attempted to implement a model of a computer system that retrieves data from a plurality of disk drives that are coupled to a bus, for example, a bus that employs a Small Computer System Interface (SCSI) protocol. Others have presented detailed performance studies for single disk systems, and approximation techniques for multiple disk systems. For several important workloads, the previous disk models fail to give an accurate prediction of system performance.
Thus there is a need for a system and a method for obtaining an analytical model of a bus supporting multiple disks, and based on that model, implementing a system that is configured to optimize the data throughput traveling via that bus.